1
Fondements du développement de noyaux CUDA
AI021Lesson 2
00:00

Le développement de noyaux CUDA commence par la définition d'un noyau, qui est une fonction C++ spécialisée conçue pour s'exécuter en parallèle sur le grand nombre de cœurs d'une GPU NVIDIA. Ces fonctions représentent l'unité fondamentale de travail dans le modèle de programmation CUDA, agissant comme un pont entre la logique séquentielle de l'hôte et l'exécution massivement parallèle sur le périphérique.

1. Le spécificateur __global__

Le __global__ spécificateur de déclaration est un qualificateur API obligatoire qui indique au compilateur de générer du code pour le GPU tout en conservant le point d'entrée de la fonction visible depuis le CPU. Les fonctions qui s'exécutent sur le GPU et peuvent être appelées depuis l'hôte sont appelées des noyaux.

2. Environnement d'exécution

Les noyaux sont envoyés vers et exécutés sur Multiprocesseurs de flux (SM). Le SM est le moteur principal de calcul au sein d'un GPU NVIDIA, chargé de gérer des centaines de threads simultanés. Chaque SM gère des blocs de threads et les programme sur les unités de traitement.

Règle de syntaxe : Les noyaux doivent strictement retourner void. Comme ils s'exécutent de manière asynchrone par rapport à l'hôte, ils ne peuvent pas renvoyer directement une valeur au CPU ; ils doivent écrire les résultats dans la mémoire allouée sur le périphérique.

Hôte (CPU)Périphérique (GPU NVIDIA)FluxMultiprocesseur (SM)Lancement du noyau
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>